#include<iostream>
#include<vector>
#include<string>
#include<stack>
using namespace std;


class Solution {
public:
    long long to_digit(string& str)
    {

        long long ans = 0;
        int flag = 1;
        int i = 0;
        if (str[0] == '-') {
            flag = -1;
            i = 1;
        }
        int len = str.size();
        for (; i < len; i++) {
            ans *= 10;
            ans += (str[i] - '0');
        }
        return flag * ans;
    }
    int evalRPN(vector<string>& tokens) {
        stack<string> st;
        int len = tokens.size();
        for (int i = 0; i < len; i++) {
            if (tokens[i] == "+") {
                string tmp1 = st.top(); st.pop();
                string tmp2 = st.top(); st.pop();
                st.push(to_string(to_digit(tmp1) + to_digit(tmp2)));
            }
            else if (tokens[i] == "-") {
                string tmp1 = st.top(); st.pop();
                string tmp2 = st.top(); st.pop();
                st.push(to_string(to_digit(tmp2) - to_digit(tmp1)));
            }
            else if (tokens[i] == "*") {
                string tmp1 = st.top(); st.pop();
                string tmp2 = st.top(); st.pop();
                st.push(to_string(to_digit(tmp1) * to_digit(tmp2)));
            }
            else if (tokens[i] == "/") {
                string tmp1 = st.top(); st.pop();
                string tmp2 = st.top(); st.pop();
                st.push(to_string(to_digit(tmp2) / to_digit(tmp1)));
            }
            else st.push(tokens[i]);
        }
        return to_digit(st.top());
    }
};